package day02;

import java.util.Scanner;

/*
@Author: 王少杰
@Date: 2024/12/31
@Time: 9:25
@FileName: Demo02.class
@描述:
循环:
for循环:确定循环次数的。
while循环:当型循环，当满足条件时，一直执行，不确定次数的循环。
do-while循环:直到型循环，循环执行，直到某个条件不满足。循环至少会被执行一次。
1.初始化条件:初始化一个循环变量
2.循环条件，满足条件会一直执行
3.迭代条件
4.循环体
*/
public class Demo02 {
    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
//                System.out.println("i" + "*" + "j" + "="+i*j);
                System.out.print(j + "*" + i + "=" + (i * j) + "\t");
            }
            System.out.println();
        }
        //计算10的阶乘
        int n = 10;
        int s = 1;
        //int i = 1:初始化条件
        //i<= n:循环条件
        //i++:迭代条件
        //s*=i:循环体
        for (int i = 1; i < n; i++) {
            s *= i;
        }
        System.out.println(n + "的阶乘位:" + s);

        s = 1;
        int i = 1;
        while (i <= n) {
            s *= i;//4
            i++;//3 不写会导致死循环
        }
        System.out.println(n + "的阶乘位:" + s);


        s = 1;
        i = 1;
        do{
            s *= i;
            i++;
        }while (i <= n);
        System.out.println(n + "的阶乘位:" + s);

        int a = 100;
        while (a > 100) {
            System.out.println("while-不会执行");
        }

        do{
            System.out.println("do-while-会被执行");
        }while (a > 100);
        //while不确定次数的循环。
        //键盘输入若干的数字，统计正数、负数的个数，遇到0结束统计。

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入数字:");
        int x = -1;//存放数字的
        int z = 0;//整数的个数
        int f = 0;//负数的个数
        while (x !=0){
            x = sc.nextInt();//获取键盘输入的数字
            if (x > 0){
                z++;
            }else if (x < 0){
                f++;
            }
        }
        System.out.println("正数的个数位:"+ z +"负数的个数为:" + f);
    }
}
